"""
文件处理工具函数
"""
from werkzeug.utils import secure_filename as werkzeug_secure_filename
from pathlib import Path

def allowed_file(filename, allowed_extensions=None):
    """
    检查文件扩展名是否允许
    
    Args:
        filename: 文件名
        allowed_extensions: 允许的扩展名集合，默认为None（需要从配置获取）
    
    Returns:
        bool: 是否允许
    """
    if allowed_extensions is None:
        allowed_extensions = {'jar', 'class'}
    
    return '.' in filename and filename.rsplit('.', 1)[1].lower() in allowed_extensions

def extract_class_name(class_filename):
    """
    从文件名提取名称（去掉扩展名）
    
    Args:
        class_filename: 文件名，如 Test.class 或 Test.java
    
    Returns:
        str: 文件名（不含扩展名），如 Test
    """
    # 获取文件名（不含扩展名）
    if '.' in class_filename:
        return class_filename.rsplit('.', 1)[0]
    return class_filename

def extract_file_name(file_filename):
    """
    提取文件名（完整文件名）
    
    Args:
        file_filename: 完整文件名，如 Test.class
    
    Returns:
        str: 文件名，如 Test.class
    """
    return file_filename

def normalize_path(path):
    """
    标准化路径，统一使用/分隔符
    
    Args:
        path: 路径字符串
    
    Returns:
        str: 标准化后的路径
    """
    return path.replace('\\', '/')

def secure_filename(filename):
    """
    安全文件名处理（封装werkzeug的函数）
    
    Args:
        filename: 原始文件名
    
    Returns:
        str: 安全文件名
    """
    return werkzeug_secure_filename(filename)

